home *** CD-ROM | disk | FTP | other *** search
- /*
- Program relies on definitions of _MSC_VER or __TURBOC__
- to account for compiler differences between Turbo C and
- Microsoft C. These values are predefined.
- */
-
- #if defined( _MSC_VER )
-
- #include <malloc.h>
- #include <direct.h>
-
- /* Turbo */ /* Microsoft */
- /* translate structure name and members */
- #define ffblk find_t
- #define ff_reserved reserved
- #define ff_attrib attrib
- #define ff_ftime wr_time
- #define ff_fdate wr_date
- #define ff_fsize size
- #define ff_name name
- /* translate attribute mask defines */
- #define FA_RDONLY _A_RDONLY
- #define FA_HIDDEN _A_HIDDEN
- #define FA_SYSTEM _A_SYSTEM
- #define FA_LABEL _A_VOLID
- #define FA_DIREC _A_SUBDIR
- #define FA_ARCH _A_ARCH
- /*
- use macros to substitute functions and
- swap argument order
- */
- #define findfirst( a , b , c ) _dos_findfirst((a),(c),(b))
- #define findnext( a ) _dos_findnext((a))
-
- /* end of _MSC_VER */
- #elif defined( __TURBOC__ )
-
- #include <dir.h>
- #include <alloc.h>
-
- #endif /* __TURBOC__ */
-
- #include <dos.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
-
-
- /* defines */
- #define VERSION "NO_DUP Ver 1.0, Jerzy Tomasik (c) 1990"
- #define ALL_FILES 0xFFFF /* flag for _dos_find??? */
- #define MAX_LINE 80
- #define MAX_PATH 80
- #define MAX_FLEN 13
- #define MAX_FILES 15000
- #define SEPARATOR "************\n"
-
- /* data definitions and declarations */
-
- typedef enum { False, True } Flag;
-
- /*
- DirEntry structure holds data for all files
- */
- typedef struct DirEntry
- {
- char *path;
- char name[13];
- char attrib;
- unsigned time;
- unsigned date;
- long size;
- Flag dir_processed;
- } DirEntry;
-
- /*
- DirList structure holds the listing of all
- subdirectories on a disk
- */
- typedef struct DirList
- {
- char pathname[MAX_PATH];
- Flag dir_processed;
- struct DirList *prev;
- struct DirList *next;
- } DirList;
-
- typedef struct
- {
- Flag dir;
- Flag file;
- unsigned int file_count;
- unsigned long total_file_size;
- } GlobalOpt;
-
- typedef char *PtrList;
-
- /* function prototypes */
-
- DirEntry *get_direntry ( char * );
- DirList *make_path ( char *, char *, DirList * );
- DirList *get_path ( DirList * );
- int name_comp ( const void *, const void * );
- char *datestr ( unsigned d, char *buf );
- char *timestr ( unsigned t, char *buf );
- void fprint_direntry ( FILE *, DirEntry * );
-